#pragma once

#define Handler_FromMasterServer_DECL( p )	static VOID On##p( ServerSession * pServerSession, MSG_BASE * pMsg, WORD wSize )
#define Handler_FromMasterServer_IMPL( p )	VOID Handler_FromMasterServer::On##p( ServerSession * pServerSession, MSG_BASE * pMsg, WORD wSize )

class ServerSession;
class Handler_FromMasterServer
{
public:
	Handler_FromMasterServer(void){}
	~Handler_FromMasterServer(void){}


	Handler_FromMasterServer_DECL(DM_CONNECTION_SERVER_INFO_CMD);
	Handler_FromMasterServer_DECL(MX_CONNECTION_REQ_SERVER_INFO_SYN);
	Handler_FromMasterServer_DECL(MX_CONNECTION_REQ_SERVER_INFO_DBR);
	Handler_FromMasterServer_DECL(SERVERCOMMON_SERVERSHUTDOWN_REQ);

	static VOID ExecuteServerInfoQuery( ServerSession * pServer, BYTE Page );

};
